using System.Linq;
using Yukar.Engine;

namespace Bakin
{
    public class ItemEnhancementSampleScript : BakinObject
    {
        [BakinFunction(Description="説明文 / Description")]
        public float Func()
        {
            var catalog = GameMain.instance.catalog;
            var party = GameMain.instance.data.party;

            if (party.checkInventoryEmptyNum() <= 0)
            {
                // アイテム袋が空いてないので何もしない
                return 0;
            }

            var srcItem = catalog.getItemFromName<Yukar.Common.Rom.NItem>("ナイフ");

            if (!srcItem.UseEnhance)
			{
                // 強化可能になってないとデータベースを書き換えてしまうため何もしない
                return 0;
			}

            // ナイフを1個追加
            party.AddItem(srcItem.guId, 1, true);

            // 追加されたナイフを取得
            var item = party.Items.Last();

            // 価格を100に上書き
            item.item.AdvancedEnhance((int)Yukar.Common.Rom.NItem.BasicParamType.Price, 100, false, 1); // 最後の引数は0=足す、1=上書き

            // キーワードからステータス「攻撃力」の情報を取得
            var info = catalog.getGameSettings().GetCastStatusParamInfo("atk");

            if (info != null)
			{
                // 「攻撃力を変化」の値に現在の値の10%を足す
                item.item.AdvancedEnhance(info.guId, 10, true, 0);
            }

            return 1;
        }
    }
}
